Managing security credentials

ABSTRACT

Disclosed are various embodiments for managing security credentials. In one embodiment, network content for a network site is obtained in response to a user request. A connection with a remote computing device that stores and manages security credentials for accessing network sites is authenticated using a master security credential and answers to knowledge-based questions. A security credential associated with the network site is provided to the client from the remote computing device based at least in part on the answers. Access to the network site is authenticated according to the security credential.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to co-pendingU.S. Patent Application entitled “UPDATING MANAGED SECURITYCREDENTIALS,” filed on Feb. 24, 2015, and assigned application Ser. No.14/630,219, which is a continuation-in-part of, and claims priority to,co-pending U.S. Patent Applications entitled “MANAGING SECURITYCREDENTIALS,” filed on Jul. 29, 2011, and assigned application Ser. No.13/194,287, both of which are incorporated herein by reference in theirentirety.

BACKGROUND

Many web sites require users to log in with a username and password sothat the users may be securely identified. Users, however, often forgettheir username and/or password that are required to log in to a website. It is also common for users to use the same username and/orpassword for multiple web sites. Managing tens or even hundreds ofusernames and passwords is a major cause of pain for users and resultsin excessive abandonment rates where users simply fail to sign up for anew service if it requires a new account.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to variousembodiments of the present disclosure.

FIGS. 2-4 depict examples of network pages rendered by a browserexecuted in a client in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 5 is a flowchart illustrating one example of functionalityimplemented as portions of an authentication manager executed in aclient computing device in the networked environment of FIG. 1 accordingto various embodiments of the present disclosure.

FIGS. 6 and 7 are flowcharts illustrating examples of functionalityimplemented as portions of a security credential manager executed in acomputing device in the networked environment of FIG. 1 according tovarious embodiments of the present disclosure.

FIG. 8 is a schematic block diagram that provides one exampleillustration of a computing device employed in the networked environmentof FIG. 1 according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

The present disclosure relates to managing security credentials such asusernames, passwords, security keys, and/or other security credentials.Although passwords may be a strong security credential when usedproperly, they are often misused. For example, a user may set arelatively weak password, such as a word from a dictionary or a passwordthat is otherwise easy to guess. A user may also set the same passwordfor multiple accounts across multiple network sites and with differentsecurity requirements. Thus, if one account is compromised, all otheraccounts using the same password are also vulnerable.

Thus, many problems associated with using passwords as a securitycredential are caused by humans being unable to process the type of datathat passwords represent. Strong passwords often contain randomcharacters and are long, which makes them hard to remember. Passwordsare often not a single chunk of information and can stretch the limitsof human working memory. The system disclosed herein largely separatesthe user from the password, thereby resolving many of the issues. Forexample, the system may automatically generate a unique, strong passwordfor each network site, using characters selected from the entire set ofcharacters acceptable by the network site. In ordinary use, the user maynot need to know the password for the network site. Further, the systemmay store the password on a server and make the password available tothe user across multiple client devices, even on public-use clientdevices such as kiosks, etc. Access to the centrally stored passwordsmay be protected by knowledge-based questions, master passwords, and/orother approaches. In the following discussion, a general description ofthe system and its components is provided, followed by a discussion ofthe operation of the same.

With reference to FIG. 1, shown is a networked environment 100 accordingto various embodiments of the present disclosure. The networkedenvironment 100 includes a client 103 that may be in data communicationwith computing devices 106, computing devices 109, and computing devices112 by way of a network 115. The network 115 includes, for example, theInternet, intranets, extranets, wide area networks (WANs), local areanetworks (LANs), wired networks, wireless networks, or other suitablenetworks, etc., or any combination of two or more such networks. Theclient 103 may also be in data connection with a portable data store 118by way of, for example, a local interface, data bus, or another network115.

The client 103 may comprise, for example, a computer system such as adesktop computer, a laptop computer, personal digital assistants,cellular telephones, smartphones, set-top boxes, music players, webpads, tablet computer systems, game consoles, electronic book readers,kiosks, or other devices with like capability. Further, the client 103may also comprise any device that is network capable that maycommunicate with the computing devices 106, 109, 112 over the network115 to perform various functions. Such clients 103 may comprise, forexample, processor-based devices having processor circuits comprising aprocessor and a memory.

The client 103 may be configured to execute various applications such asa browser 121, an authentication manager 124, and/or other applications.The browser 121 may be executed in a client 103, for example, to accessand render network pages, such as web pages, or other forms of networkcontent served up by the computing devices 106 and/or other servers. Theauthentication manager 124 may be executed to manage usernames,passwords, private and public keys, certificates, and/or other securitycredentials. In some embodiments, the authentication manager 124 runs asa plug-in application to the browser 121. In other embodiments, theauthentication manager 124 may be a standalone application thatinterfaces with the browser 121 and/or other applications requiringmanagement of authentication. The client 103 may be configured toexecute applications beyond browser 121 and authentication manager 124such as, for example, e-mail applications, instant message applications,and other applications.

The client 103 includes a data store 127, and potentially other datastores, which may comprise data and applications configured to provideaccess to the data. The data store 127 may be used to store clientaccount data 130, certificate trust data 133, and/or potentially otherdata. Client account data 130 may include, for example, securitycredentials used to access various network sites or network pages,information regarding authentication endpoints, and/or otherinformation. In various embodiments, client account data 130 may bestored in an encrypted format. In various embodiments, client accountdata 130 may be stored ephemerally such that the security credentialsare erased upon expiration of a session of the authentication manager124. Certificate trust data 133 may describe trusted certificateauthorities that issue digital certificates used by network sites.Certificate trust data 133 may comprise, for example, public keysassociated with the trusted certificate authorities. The public keys maybe used to validate the digital signature of a trusted certificateauthority on a digital certificate.

The computing device 106 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 106 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For example, a plurality of computing devices 106 togethermay comprise a cloud computing resource, a grid computing resource,and/or any other distributed computing arrangement. Such computingdevices 106 may be located in a single installation or may bedistributed among many different geographical locations. For purposes ofconvenience, the computing device 106 is referred to herein in thesingular. Even though the computing device 106 is referred to in thesingular, it is understood that a plurality of computing devices 106 maybe employed in the various arrangements as described above.

The computing device 106 is configured to execute various applicationssuch as, for example, a network page server 136, an account creationendpoint 138, an authentication endpoint 139, and other applications.The network page server 136 is configured to serve up network pages,such as web pages, and other data from the computing device 106 tovarious clients 103. The network page server 136 may be configured tosend network pages by hypertext transfer protocol (HTTP), hypertexttransfer protocol secure (HTTPS), or some other protocol. The networkpage server 136 may employ encryption using, for example, secure socketslayer (SSL), transport layer security (TLS), and/or some other approach.Non-limiting examples of network page servers 136 include Apache® HTTPServer, Apache® Tomcat, Microsoft® Internet Information Services, andother server applications.

The network page server 136 may be configured to serve up one or morenetwork sites 140. Such a network site 140 is said to be hosted by thenetwork page server 136. A network site 140 may include a set of networkpages and/or files associated with a domain name, such as a canonicalname, and a directory, such as a root directory (i.e., “/”) or someother directory. Each network site 140 may be associated with distinctconfiguration settings in the network page server 136, while otherdefault configuration settings may be shared across network sites 140.

The account creation endpoint 138 may comprise a network page and/orsoftware configured to facilitate creation of one or more accountsand/or the establishment of security credentials for existing accountsfor one or more users at a client 103 for one or more network sites 140.In various embodiments, the authentication manager 124 communicates withthe account creation endpoint 138 through the network page server 136.To this end, the account creation endpoint 138 may be a plug-in or othermodule of the network page server 136, a script or other softwareembedded within a network page or otherwise within a network site 140and executed by way of an interpreter or a common gateway interface, oraccessed in some other way through the network page server 136. In otherembodiments, the account creation endpoint 138 may be a serverapplication executing on the same or a different computing device 106 asthe network page server 136.

The authentication endpoint 139 may comprise a network page and/orsoftware configured to facilitate authentication of a user at a client103 for one or more network sites 140. In various embodiments, theauthentication manager 124 communicates with the authentication endpoint139 through the network page server 136. To this end, the authenticationendpoint 139 may be a plug-in or other module of the network page server136, a script or other software embedded within a network page orotherwise within a network site 140 and executed by way of aninterpreter or a common gateway interface, or accessed in some other waythrough the network page server 136. In other embodiments, theauthentication endpoint 139 may be a server application executing on thesame or a different computing device 106 as the network page server 136.

The computing device 106 includes a data store 142 and potentially otherdata stores, which may comprise data and applications configured toprovide access to the data. The data store 142 may be used to storenetwork pages 145, configuration files 148, site account data 151,certificate data 154, and/or potentially other data. Network pages 145may include the network pages and/or files served up for the networksites 140 hosted by the network page server 136. Configuration files 148may include one or more security credential specifications and/ordescribe an interface of one or more account creation endpoints 138and/or authentication endpoints 139. Site account data 151 comprisessecurity credentials and/or other data associated with users of one ormore network sites 140. Certificate data 154 comprises digitalcertificates that may be used by the network page server 136, theauthentication endpoint 139, and/or other applications on the computingdevice 106 to identify a network site and/or encrypt data.

The computing device 109 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 109 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For example, a plurality of computing devices 109 togethermay comprise a cloud computing resource, a grid computing resource,and/or any other distributed computing arrangement. Such computingdevices 109 may be located in a single installation or may bedistributed among many different geographical locations. For purposes ofconvenience, the computing device 109 is referred to herein in thesingular. Even though the computing device 109 is referred to in thesingular, it is understood that a plurality of computing devices 109 maybe employed in the various arrangements as described above.

The computing device 109 includes a data store used to storeconfiguration files 157 and potentially other data. The configurationfiles 157 may include one or more security credential specificationsand/or describe an interface of one or more account creation endpoints138 and/or authentication endpoints 139. The computing device 109 maybe, for example, a system configured to provide configuration files 157corresponding to a plurality of computing devices 106. The computingdevice 109 may be operated, in some cases, by a third party. In someembodiments, configuration files 157 may correspond to configurationfiles 148 stored on a computing device 106.

The computing device 112 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 112 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For example, a plurality of computing devices 112 togethermay comprise a cloud computing resource, a grid computing resource,and/or any other distributed computing arrangement. Such computingdevices 112 may be located in a single installation or may bedistributed among many different geographical locations. For purposes ofconvenience, the computing device 112 is referred to herein in thesingular. Even though the computing device 112 is referred to in thesingular, it is understood that a plurality of computing devices 112 maybe employed in the various arrangements as described above.

Various applications and/or other functionality may be executed in thecomputing device 112 according to various embodiments. Also, variousdata is stored in a data store 160 that is accessible to the computingdevice 112. The data store 160 may be representative of a plurality ofdata stores 160 as can be appreciated. The data stored in the data store160, for example, is associated with the operation of the variousapplications and/or functional entities described below.

The components executed on the computing device 112, for example,include a security credential manager 163 and other applications,services, processes, systems, engines, or functionality not discussed indetail herein. The security credential manager 163 is executed toprovide access to security credentials stored by the computing device112 in association with a user account with a network site 140. Invarious embodiments, the security credential manager 163 may beconfigured to generate user accounts and/or establish securitycredentials with the network site 140 on behalf of a user at a client103. In various embodiments, the security credential manager 163 mayauthenticate clients 103 using a master security credential and/orknowledge-based questions.

The data stored in the data store 160 includes, for example, serveraccount data 166, valid master credentials 169, valid supplementalcredentials 170, static knowledge-based questions 172, user data 175,configuration files 176, and potentially other data. The server accountdata 166 includes security credentials for users for authentication tonetwork sites 140. Such security credentials may be stored in anencrypted form or a non-encrypted form. The server account data 166 mayalso include information regarding account creation endpoints 138,authentication endpoints 139 and/or other information. The valid mastercredentials 169 are employed to authenticate users for the securitycredential manager 163. In one example, the valid master credentials 169may correspond to hashed versions of a master security credentialestablished by users. The valid supplemental credentials 170 correspondto supplemental credentials that may also be employed to authenticateusers for the security credential manager 163. Unlike the mastersecurity credential, a combination of one or more valid supplementalcredentials 170 along with correct answers to one or moreknowledge-based questions may be needed for a user to be authenticated.Respective weights may be applied to each component of a score used todetermine authentication.

The static knowledge-based questions 172 correspond to knowledge-basedquestions for which the user has preconfigured an answer. Such questionsmay be selected by the user or may be preselected. The user data 175corresponds to various data associated with users. Such user data 175may relate to purchase transactions of a user with an online retailer,browsing history, order history, search history, profile information,and/or other data. The user data 175 may be employed to generate dynamicknowledge-based questions as will be described. The user data 175 maycorrespond to data describing the interactions of a user with a networksite 140 in some embodiments. The configuration files 176 may includeone or more security credential specifications and/or describe aninterface of one or more account creation endpoints 138 and/orauthentication endpoints 139.

The portable data store 118 may comprise, for example, a universalserial bus (USB) flash storage device, a solid-state storage device, aportable hard disk, a floppy disk, an optical disc, and/or otherportable storage devices. In various embodiments, the portable datastore 118 may include a processor circuit comprising a processor and amemory. In other embodiments, the portable data store 118 may merelyconsist of a storage medium. The portable data store 118 may beremovably attached to the client 103 in some embodiments.

The portable data store 118 may be configured to store portable accountdata 178, authentication manager code 179, and/or other data. Theportable account data 178 may include, for example, security credentialsused to access various network sites 140 or network pages 145,information regarding authentication endpoints 139, and/or otherinformation. In various embodiments, the portable account data 178 maybe a mirror of the client account data 130 or the server account data166. In other embodiments, the portable account data 178 may take theplace of client account data 130 or the server account data 166. Theportable account data 178 may be stored in an encrypted format. To thisend, the portable data store 118 may include a device (e.g., afingerprint scanner or other biometric recognition device, a pin pad,etc.) used to authenticate a user in order to provide access to the dataon the portable data store 118, such as portable account data 178; or itmay include hardware and/or software to permit a user to enter apassword and/or decryption key in order to provide access to the data onthe portable data store 118. Additionally, in some embodiments, theauthentication manager 124 may be stored as authentication manager code179 on the portable data store 118 and executed in the client 103, forexample, when the portable data store 118 is attached to the client 103.

Next, a general description of the operation of the various componentsof the networked environment 100 is provided. To begin, a user mayinstall authentication manager 124 onto the client 103 and preconfigurethe operation of the authentication manager 124 for existing accountsassociated with network sites 140. For example, the user may provide tothe authentication manager 124 and/or the security credential manager163 existing security credentials such as, for example, usernames,passwords, security keys, certificates, and/or other securitycredentials along with identifying information for the network sites 140and/or uniform resource locators (URLs) associated with the securitycredentials.

The user may also configure a master security credential such as, forexample, a username, password, biometric identification, etc. for theauthentication manager 124 so that the security credentials may beencrypted or otherwise protected from use or view on client 103 withoutthe authorization of the user. Where the security credentials are storedin the server account data 166 of the computing devices 112, the usermay establish a valid master credential 169 with the security credentialmanager 163. In some cases, the user may configure answers to staticknowledge-based questions 172 with the security credential manager 163.

The account information may be stored by the authentication manager 124in client account data 130 on the client 103 and/or at some otherlocation. For example, the authentication manager 124 may back up theaccount information to account data 160 located on the computing device106, portable account data 178 located on in the portable data store118, and/or another location. Various techniques relating to storage ofthe account information on the client 103 are described by U.S. patentapplication Ser. No. 12/539,886 entitled “AUTHENTICATION MANAGER” andfiled on Aug. 12, 2009, which is incorporated herein by reference in itsentirety.

In some embodiments, the account information may be centrally hosted inthe server account data 166 of the computing devices 112. When thecomputing devices 112, the portable data store 118, or other storagelocations are used to store account information, a user may be able touse the authentication manager 124 and the account information onanother client 103. To this end, the authentication manager 124 may be,for example, downloaded, configured, and loaded automatically on anotherclient 103. Additionally, various functions that are described as beingperformed by the authentication manager 124 may instead be performed bythe security credential manager 163. For example, the securitycredential manager 163 may be configured to create accounts, regeneratesecurity credentials, etc. in place of the authentication manager 124.The authentication manager 124 in some cases may be characterized as aclient application of the security credential manager 163.

Security credentials may be shared among multiple users of theauthentication manager 124. As a non-limiting example, several users inan organization may share an online banking account. A first user maycreate a username and password for the account using the authenticationmanager 124 and/or the security credential manager 163. The first usermay mark the account as shared and provide a list of users that areauthorized to access the account, including a second user. When theaccount is distributed to client account data 130, server account data166, portable account data 178, it may be secured such that only theauthorized users can access it. When the second user next uses theauthentication manager 124, the second user may be given the opportunityto synchronize the new account with portable account data 178 located inthe portable data store 118 belonging to the second user or in someother location.

During the installation process, in one embodiment, the user may specifywhether the authentication manager 124 is to operate as a browser 121plug-in or as a standalone application. The authentication manager 124may be installed and configured for a plurality of browsers 121 such asFirefox®, Internet Explorer®, Safari®, Chrome®, and/or other browsers121. The authentication manager 124 may also be configured for aplurality of users on the client 103.

When a user accesses a network site 140 with the browser 121 or anotherapplication, the authentication manager 124 determines whether thenetwork site 140 is associated with stored account information, whichmay be stored, for example, centrally in the server account data 166 orlocally in the client account data 130. If the network site 140 is notassociated with stored account information, then the authenticationmanager 124 may notify the user and may prompt the user to providesecurity credentials if the user has an existing account. Theuser-provided security credentials may then be stored by theauthentication manager 124 in one or more of client account data 130,server account data 166, or portable account data 178.

Alternatively, or additionally, the authentication manager 124 and/orthe security credential manager 163 may assist the user in creating anaccount for the network site 140. The account may be a one-time account,a first account for the user, or a second or subsequent account for theuser. The authentication manager 124 and/or the security credentialmanager 163 may determine how to create an account for a network site140 based, for example, on the structure of a form embedded within anetwork page 145. Such a form may be defined in hypertext markuplanguage (HTML), extensible markup language (XML), or some otherlanguage.

As a non-limiting example, the authentication manager 124 may identifyan account creation form when a submit input element on a network page145 is associated with text such as “Create Account.” The authenticationmanager 124 may also examine the URL for relevant keywords. As anothernon-limiting example, the authentication manager 124 may identify anaccount creation form when a challenge response test (e.g., a “Captcha”)is present. The authentication manager 124 may automatically identifyrequired fields for security credentials using, for example, inputelements on a network page 145 named “username,” “password,” or otheridentifiable names. In various embodiments, the authentication manager124 may have the user identify the account creation form and/or taginput elements of the form so that the authentication manager 124 mayaccurately identify how the account may be created with form filling.Such a list of tags can be stored in a configuration file 157 which maythen be uploaded to a computing device 109. There, the configurationfile 157 can be accessed by other users using the authentication manager124 and used by them to simplify account creation on the network site140 described by the configuration file 157. Alternatively, oradditionally, configuration files 176 may be stored by the computingdevice 112 to be accessed by the authentication manager 124, thesecurity credential manager 163, and/or other applications.

In various embodiments, the authentication manager 124 and/or thesecurity credential manager 163 may create the account in an automatedway through methods other than form filling. For example, theauthentication manager 124 and/or the security credential manager 163may obtain a configuration file 148 associated with the network site 140from either the network page server 136 for the network site 140 or acomputing device 109 that may provide a configuration file 157associated with the network site 140. The configuration file 148, 157,176 may define one or more account creation endpoints 138 for thenetwork site 140 where the authentication manager 124 and/or thesecurity credential manager 163 may authenticate and/or create anaccount other than by filling out a form. For example, the configurationfile 148, 157, 176 may define the URL, parameters, encoding, and/orother information required to create an account in an automated waythrough an account creation endpoint 138. In some embodiments, oneaccount creation endpoint 138 may be shared by multiple network sites140 and/or network page servers 136.

The configuration file 148, 157, 176 may also include a securitycredential specification associated with the network site 140. Thesecurity credential specification may specify a character set, minimumlength, maximum length, and/or other parameters for usernames and/orpasswords. The security credential specification may also specifyminimum key length, acceptable algorithms and formats, and/or otherparameters applicable to public key infrastructure or other types ofsecurity credentials.

The authentication manager 124 and/or the security credential manager163 may generate one or more security credentials based on the securitycredential specification. In one embodiment, the security credentialmanager 163 may be configured to obtain the security credentialspecifications according to a subscription-based push model. In anotherembodiment, the security credential manager 163 may be configured topull the security credential specifications from the computing device106 or 109 at regular intervals.

When the authentication manager 124 and/or the security credentialmanager 163 is creating an account by form filling, the authenticationmanager 124 may prompt the user to supply a security credentialspecification so that the authentication manager 124 and/or the securitycredential manager 163 may generate one or more security credentials tobe filled in on the form. The user may see information regardingrequired attributes for security credentials displayed on the networkpage 145 near the account creation form. The authentication manager 124may provide options including, but not limited to, length of thesecurity credential, directions to use a certain character set,directions to use at least one number, directions to use at least onenon-alphanumeric character, and other options.

As a non-limiting example, the authentication manager 124 may present agraphical interface to the user listing various attributes that may beused in generating the security credentials. Such a graphical interfacemay include, for example, checkboxes, radio buttons, drop-down boxes,text fields, text areas, etc. The graphical interface may bepreconfigured with default selections. Where the security credentialsare generated by the security credential manager 163, the securitycredential manager 163 may perform the form filling, or the securitycredentials may be transferred to the authentication manager 124 for theauthentication manager to perform the form filling.

In various embodiments, when the authentication manager 124 is creatingan account by form filling, the authentication manager 124 may replace,for example, the normal user interaction in filling out the form with awizard interface. The wizard interface may omit tasks or fields that maybe done automatically by the authentication manager 124. However, thewizard interface may obtain input from the user in order to fill outfields such as “Captchas” and other challenge response tests. Althoughthe authentication manager 124 and/or the security credential manager163 may be configured to fill out fields pertaining to other personalinformation (e.g., name, date of birth, social security number, phonenumber, address, etc.), the authentication manager 124 may instead beconfigured to prompt the user for that information. In variousembodiments, the authentication manager 124 may leave unrecognized formfields blank for the user to complete.

Accordingly, the authentication manager 124 and/or browser 121 sends anaccount creation request associated with the generated securitycredential to the network site 140. After the account creation requestis submitted, the account will either be created or not created for thenetwork site 140. The network site 140 typically provides a responsepage indicating whether the account creation was successful. Such anetwork page 145 may be parsed automatically by the authenticationmanager 124 or may be left for additional user input to theauthentication manager 124.

In some cases, the response page will include another form with anindication that there was a problem. As a non-limiting example, ausername field may be highlighted with an explanation that the specifiedusername was already taken. The authentication manager 124 may beconfigured to respond automatically to such requests and/or to seek userinput. Account creation responses through an authentication endpoint 139may be handled by the authentication manager 124 in an analogous way. Inone embodiment, the authentication manager 124 may simply assume thatthe account was created.

Responsive to account creation, the authentication manager 124 and/orthe security credential manager 163 store the account informationincluding, but not limited to, security credentials, URLs, and domainnames associated with the account and network site 140, in one or moreof client account data 130, server account data 166, or portable accountdata 178. In particular, the network site 140 or authentication endpoint139 may present a trusted certificate from certificate data 154 duringthe account creation process. Information relating to this trustedcertificate, including domain name, certificate authority, and otherinformation from the certificate, may be stored with the accountinformation. The account information may consequently be marked asusable on a network site 140 corresponding to the domain name providedin the trusted certificate, or only for a network site 140 able topresent that specific certificate in higher assurance environments.Account information stored in any of client account data 130, serveraccount data 166, or portable account data 178 may be manually orautomatically copied by the authentication manager 124 and/or thesecurity credential manager 163 to any other client account data 130,server account data 166, or portable account data 178 so that theaccount information may be mirrored across any two or more of clientaccount data 130, server account data 166, or portable account data 178.

For purposes of backup, the authentication manager 124 and/or thesecurity credential manager 163 may be capable of rendering a list ofthe stored account information in client account data 130, serveraccount data 166, or portable account data 178 for viewing or printing.To facilitate viewing or printing, the authentication manager 124 and/orthe security credential manager 163 may be configured to generate humanreadable or printable security credentials using an appropriatecharacter set. Alternatively, the authentication manager 124 and/or thesecurity credential manager 163 may encode security credentials in aprintable form using an encoding approach such as, for example,UUencoding, BinHex, Multipurpose Internet Mail Extensions (MIME)encodings, Base64, and other encoding approaches.

When a stored account exists for a network site 140, the authenticationmanager 124 and/or the security credential manager 163 determineswhether to provide the security credentials to the network site 140. Asa preliminary matter, the authentication manager 124 and/or the securitycredential manager 163 may require that the user be authenticated to theauthentication manager 124 and the security credential manager 163 byway of a master security credential such as a password, presence of theportable data store 118 at the client 103, biometric identification,native operating system identification, or some other authentication.Responsive to authentication, the authentication manager 124 may decryptthe stored client account data 130, server account data 166, or portableaccount data 178. In some embodiments, the authentication manager 124may be given access to the stored client account data 130, serveraccount data 166, or portable account data 178 responsive to providing amaster security credential. The authentication manager 124 then verifiesthe identity of the network site 140.

Verifying the identity of the network site 140 may be performed, forexample, by comparing a domain name associated with a trustedcertificate provided by a network site 140 at the time of logon with thedomain name associated with the network site 140 in the stored accountinformation. The authentication manager 124 may compare the domain nameassociated with the trusted certificate provided by the network site140, for example, with a domain name provided by a user, a domain nameinferred by heuristic analysis, or some other domain name, in order toidentify which stored account the network site 140 appears to resemble.Verifying the identity of the network site 140 through the use oftrusted certificates may be less susceptible to spoofing attacks than byverifying the identity merely through domain name service (DNS) nameresolution, for example, or comparing a stored domain name to what isdisplayed in the address bar of the browser 121.

If the network site 140 provides no certificate (e.g., authenticationunder HTTP) or if the certificate is not trusted (e.g., self-signed orissued by a certificate authority not considered to be trusted in thecertificate trust data 133), the authentication manager 124 may displaya warning to the user. In some cases, the user may accept the warningand continue. In some embodiments, the authentication manager 124 mayremember such characteristics and use them to aid in future identityverification of the network site 140. In other cases, the authenticationmanager 124 may identify a clear use of a spoofing attack or otherphishing attempt and provide additional warnings, disable authenticationat the particular network site 140, require reauthentication by the userto the authentication manager 124, and/or take other precautions.Additionally, by integrating the authentication manager 124 with a siteproviding reputation data for network sites 140, the authenticationmanager 124 can warn the user that a network site 140 is hostile.

The authentication manager 124 may additionally verify the identity ofthe network site 140 by other methods. One verification method maycomprise comparing the contents of the address bar in the browser 121with a stored URL or domain name. A second verification method maycomprise comparing contents of the HTTP headers sent by the accessednetwork site 140 with a stored URL or domain name. A third verificationmethod may comprise performing a reverse DNS look-up on an InternetProtocol (IP) address associated with the accessed network site 140 andcomparing that domain name with a stored URL or domain name. Otherverification methods may also be employed. More secure methods may beemployed prior to downgrading to less secure methods, and the user mayspecify acceptable methods of proving the identity of network sites 140.

Once the identity of a network site 140 is verified, the authenticationmanager 124 may provide the security credentials to the network site 140automatically through an authentication endpoint 139 or may obtain userconfirmation. If the authentication manager 124 is configured to obtainuser input, the authentication manager 124 may render a button or otheruser interface feature in or on top of the browser 121 to obtainconfirmation.

When no authentication endpoint 139 is defined for a network site 140,the authentication manager 124 may be configured to detect whether anauthentication form is presented. The authentication manager 124 mayexamine the network page 145 for elements such as a submit input elementassociated with text such as “Log In,” input fields matching “username”and/or “password,” fields using the password type, and other identifyingelements. The authentication manager 124 may also examine the URL forrelevant keywords. In some embodiments, the authentication manager 124and/or the security credential manager 163 may store a URL associatedwith the network site 140 in client account data 130, server accountdata 166, or portable account data 178, which may be used forauthentication. The authentication manager 124 may provide the securitycredentials to the network site 140 by form filling. The submission ofsuch a form may be automatic or may be subject to user input such asselection of a “Submit” or “Log In” button or other user interfaceelement.

In some cases, the user may forget the master security credential or maynot have access to the master security credential on another client 103.The user may then be able to either reset the master securitycredential, or gain at least temporary access to stored securitycredentials, through a procedure implemented by the security credentialmanager 163. Upon a user selecting a master security credential or resetoption, the security credential manager 163 may generate a userinterface providing one or more knowledge-based questions. For example,the user interface may correspond to a network page for rendering in thebrowser 121. Alternatively, data may be sent to the authenticationmanager 124 in order for a user interface to be rendered by theauthentication manager 124.

The user interface may present static knowledge-based questions 172 thatare preconfigured by the user. For example, the user interface maypresent a question of “What is your mother's maiden name?,” “In whatcity were you born?,” “What was the mascot of your high school?,” and soon. The user interface may present true questions or false questions.True questions correspond to questions that can be validated by both theuser and the security credential manager 163 that are unique to theuser. False questions are those designed to catch an attacker who isattempting gain unauthorized access to the security credentials. Forexample, a false question may be: “What was the last payment amount forthe truck you lease?” where the correct answer should be: “I do not havea truck.”

Furthermore, the user interface may present knowledge-based questionsthat are dynamically generated by the security credential manager 163.With dynamically generated questions, the user may have no foreknowledgeas to what type of questions will be asked. Dynamically generatedquestions may employ user data 175 including unique customer informationsuch as purchase transaction history and/or other data. One example of adynamically generated question may be: “I see that you purchased an itemfrom E-Retailer yesterday, can you tell me the bill amount?”

Multiple knowledge-based questions may be presented in a user interface.The answers to the knowledge-based questions may be used by the securitycredential manager 163 to generate a score. When the score meets apredefined threshold (e.g., one question answered correctly, threequestions answered correctly, one dynamically generated question basedon recent data answered correctly, etc.), the user may be granted accessto the stored security credentials of the server account data 166 and/oraccess to establish a new valid master credential 169. It is noted thatdifferent weighting may be applied to different types of questions ingenerating a score. For example, dynamic questions based on a recentevent may be given a greater weight than a static question based oninformation obtained during account creation. In the case of new orinfrequent users for whom insufficient user data 175 is present fordynamically generated questions, the security credential manager 163 mayfall back to employ the static knowledge-based questions 172.

Once a user is authenticated by the security credential manager 163through the use of knowledge-based questions, or through a valid mastersecurity credential, security credentials of the user from the serveraccount data 166 may be downloaded to the client account data 130 foruse by the authentication manager 124. In one example, the client 103corresponds to a kiosk or another public-use client 103. In such anexample, the security credentials may be maintained ephemerally in thememory of the client 103 such that they are erased from memory when theuser logs out, exits the browser 121, or otherwise ends the session ofthe authentication manager 124. Alternatively, the security credentialsmay be saved to the client account data 130 for future use through theclient 103.

Moreover, once a user is authenticated by the security credentialmanager 163, the user may be presented with an opportunity to set a newsecurity credential. For example, the user may supply the new securitycredential with or without the previous security credential. The validmaster credentials 169 are updated by the security credential manager163 to store the new valid master credential 169. It is noted that thevalid master credential 169 may be hashed or otherwise encoded.

The security credential manager 163 may also be employed to generate orregenerate security credentials according to security credentialspecifications in the configuration files 176. In addition to initialaccount creation and configuration, the security credential manager 163may be configured to regenerate security credentials periodically orwhen triggered by a user or administrator. For example, an administratormay trigger an automatic regeneration of security credentials for manyusers with accounts for a certain network site 140 in response to apotential security compromise. Upon regeneration of the securitycredentials, the security credential manager 163 may establish the newlygenerated security credentials with the various network sites 140 usingthe appropriate account creation endpoint 138. The security credentialmanager 163 may supply a previous security credential to facilitateestablishing the newly generated security credential. The securitycredentials may be generated or regenerated to have a maximum securitystrength allowed by the security credential specification.

Turning now to FIG. 2, shown is an example of a network page 145(FIG. 1) rendered by a browser 121 (FIG. 1) executed in a client 103(FIG. 1) in the networked environment 100 (FIG. 1) according to variousembodiments of the present disclosure. In this example, the user mayhave entered, or may have been automatically redirected to, the URL“https://www.e-retailer.site/,” which is displayed in the address bar203 of the browser 121. The network page 145 provided by the networksite 140 (FIG. 1) in response to the URL includes an authentication formhaving a username field 206, a password field 209, and a submit button212.

The browser 121 includes a security indication 215 that indicates thatthe network site 140 has presented a trusted certificate and thecommunication between the client 103 and the computing device 106(FIG. 1) is being encrypted. In FIG. 2, the authentication manager 124(FIG. 1) has verified the identity of the network site 140 and ispresenting an authentication button 218. The authentication button 218indicates that account information associated with the network site 140is stored in client account data 130, server account data 166, orportable account data 178.

Once a user selects the authentication button 218, the authenticationmanager 124 may fill in the username field 206 and the password field209. The authentication manager 124 may also automatically submit thelogon request by programmatically pressing the submit button 212. Insome embodiments, the username field 206 and password field 209 may beprefilled automatically with the security credential upon verificationof the identity of the network site 140. The security credentials may beshown as place holding characters or as plain text.

Alternatively, if, for example, an authentication endpoint 139 (FIG. 1)is defined, the authentication manager 124 or the security credentialmanager 163 (FIG. 1) may authenticate in the background. Theauthentication manager 124 may give an indication of success or failureand may provide another authentication button 218 in order to log out ofthe network site 140. If multiple user accounts are present for thenetwork site 140, the authentication manager 124 may provide a drop-downbox or other user interface element allowing the user to select one ofthe accounts for authentication.

Referring next to FIG. 3, shown is another example of a network page 145(FIG. 1) rendered by a browser 121 (FIG. 1) executed in a client 103(FIG. 1) in the networked environment 100 (FIG. 1) according to variousembodiments of the present disclosure. In this example, the user mayhave entered, or may have been automatically redirected to, a differentURL such as “https://www.e-retailer.site.hackersrus.yz/,” which isdisplayed in the address bar 203 (FIG. 2) of the browser 121. Thenetwork page 145 provided by the network site 140 (FIG. 1) in responseto the URL includes an authentication form having a username field 206(FIG. 2), a password field 209 (FIG. 2), and a submit button 212 (FIG.2).

FIG. 3 represents an example of a common phishing scheme, where anetwork page 145 is presented by a fraudulent network site 140 having alook-and-feel that is identical or nearly identical to the network page145 presented by the legitimate network site 140. See FIG. 2. Althoughthe URL in this example includes the domain name of the legitimatenetwork site 140, the URL is not identical and is in fact a subdomain of“hackersrus.yz.” In this case, the authentication manager 124 (FIG. 1)cannot verify the identity of the network site 140 by way of the URLpresented in the address bar 203 because the domain name in the URL isnot a subdomain of, or identical to, the stored domain name“e-retailer.site” or “www.e-retailer.site.”

The network site 140 in FIG. 3 cannot be identified additionally becausethe network site 140 has not presented a trusted certificate as thesecurity indication 215 (FIG. 2) is absent. Various phishing attacks mayinvolve presenting a trusted certificate associated with the name ofsome other network site 140 or a real certificate for the fraudulentnetwork site 140. Other phishing attacks may involve substituting asecurity indication 215 that is faked. The authentication manager 124may avoid such attacks because it is not deceived by graphicalappearances but instead may examine the network page 145 and certificatedata received behind the scenes by the browser 121. The authenticationmanager 124 determines that this network site 140 in FIG. 3 has nostored security credentials. Thus, in this non-limiting example, theauthentication manager 124 presents an information button 303 in placeof an authentication button 218 (FIG. 2) that states “No Log InInformation Found.”

In some embodiments, the authentication manager 124 and/or the securitycredential manager 163 (FIG. 1) may employ a heuristic analysis of thenetwork page 145 and/or reputation data to identify fraudulent sitesproactively. For example, the authentication manager 124 or the securitycredential manager 163 may perform a heuristic analysis to determinewhether a network page includes a logon form that is a fraudulent copyof a logon form associated with a stored domain name. In such cases, theauthentication manager 124 may provide a warning to the user.Additionally, if the user were to request that the authenticationmanager 124 provide the security credentials used for a legitimatenetwork site 140 to a fraudulent network site 140 (e.g., if the domainname of a trusted certificate of the fraudulent network site 140 doesnot match the stored domain name associated with the legitimate networksite 140), the authentication manager 124 may generate a warning.

Moving on to FIG. 4, shown is an example of a network page 145 (FIG. 1)rendered by a browser 121 (FIG. 1) executed in a client 103 (FIG. 1) inthe networked environment 100 (FIG. 1) according to various embodimentsof the present disclosure. In this example, the browser 121 appearssimilar to that depicted in FIG. 2, except that the authenticationmanager 124 (FIG. 1) has provided an information button 303 (FIG. 3) inplace of an authentication button 218 (FIG. 2). The address bar 203(FIG. 2) appears to depict the URL of the legitimate network site 140(FIG. 1). However, the secure certificate was issued by an untrustedcertificate authority. Thus, the security indication 215 (FIG. 2) isabsent. Also, the submit button 212 may be disabled or grayed out toprevent or discourage users from submitting information using the form.The username field 206 and the password field 209 may also be disabledor grayed out to prevent or discourage data entry in those fields.

The inconsistency may be explained by spoofing attacks according tovarious methods such as, for example, a man-in-the-middle attack andother attacks. As a non-limiting example, the client 103 may have beenprovided misbehaving and/or compromised DNS servers through the dynamichost configuration protocol (DHCP). The misbehaving DNS servers may beconfigured to give inaccurate domain name information. By contrast,malicious users are less likely to be able to comprise a trustedcertificate authority because public key infrastructure is used. Here,the authentication manager 124 has determined that a network site 140 isnot verified and has not provided the security credentials. An ordinaryuser, however, may have been misled and supplied the securitycredentials to the fraudulent network site 140.

In some cases, the inconsistency may result from a legitimate networksite 140 changing its certificate provider. The authentication manager124 may include a configuration setting to enable a warning when thecertificate authority signing the secure certificate for a network site140 changes from the certificate authority that issued the securecertificate that the authentication manager 124 received when thesecurity credential was previously created or stored for the networksite 140.

With reference to FIG. 5, shown is a flowchart that provides one exampleof the operation of a portion of the authentication manager 124 (FIG. 1)according to various embodiments. It is understood that the flowchart ofFIG. 5 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof the portion of the authentication manager 124 as described herein. Asan alternative, the flowchart of FIG. 5 may be viewed as depicting anexample of steps of a method implemented in the client 103 (FIG. 1)according to one or more embodiments.

Beginning with box 501, the authentication manager 124 authenticates tothe security credential manager 163 (FIG. 1). To this end, a userinterface may be rendered by the authentication manager 124 to collect amaster security credential or obtain answers to one or moreknowledge-based questions. In some cases, the master security credentialmay be stored by the client 103. In one embodiment, the authenticationmanager 124 may download all security credentials from the securitycredential manager 163 to the client 103 upon authentication. In anotherembodiment, the authentication manager 124 may download securitycredentials for particular network sites 140 (FIG. 1) on demand as theyare needed.

In box 503, the authentication manager 124 obtains a network page 145(FIG. 1) from a network site 140 in response to a request by a user. Invarious embodiments, the network page 145 may be obtained throughoperation of the browser 121 (FIG. 1). Next, in box 506, theauthentication manager 124 determines whether the network site 140requires authentication. This determination may be based, for example,on the presence of an authentication form on the network page 145 orsome other network page 145 on the network site 140, the presence of aconfiguration file 148, 157 (FIG. 1), on user input, or on otherfactors. If authentication is not required by the network site 140, thecontrol flow of the authentication manager 124 stops.

After determining that a network site 140 requires authentication, theauthentication manager 124 proceeds to box 509. In box 509, theauthentication manager 124 determines whether the identity of thenetwork site 140 can be verified. This verification may involve, forexample, examination of a domain name associated with a trustedcertificate received in connection with the network page 145.

If the authentication manager 124 cannot verify the identity of thenetwork site 140, the authentication manager 124 moves to box 512 andwarns the user that the identity of the site cannot be verified and/ornotifies the user that no stored account information can be found. Next,the authentication manager 124 determines in box 515 whether the userhas indicated to proceed with authentication nonetheless using otherstored account information. In some embodiments, the authenticationmanager 124 may preclude the user from proceeding with authentication.If the user has not indicated to proceed, the control flow of theauthentication manager 124 stops. If the user has indicated to proceedin box 515, the authentication manager 124 moves to box 517. If in box509 the identity of the network site 140 has been verified, theauthentication manager 124 also moves to box 517.

In box 517, the authentication manager 124 obtains, or attempts toobtain, security credentials for the network site. The credentials forthe network site may be stored locally in the client account data 130,stored remotely in the server account data 166, or mirrored in theportable account data 178 (FIG. 1). In box 518, the authenticationmanager 124 determines whether an account exists for the network site140. This determination may be made by comparing the domain nameassociated with the request with stored domain names in client accountdata 130, server account data 166, or portable account data 178.Additionally, the user may provide a domain name to the authenticationmanager 124 which the user believes to correspond to the network site140 in order to locate a stored account.

If the authentication manager 124 determines that an account does notexist, the authentication manager 124 proceeds to box 519 and offers tocreate an account for the user. In some embodiments, account creation isperformed by the security credential manager 163. Additional accountsfor the same network site 140 may be created by the authenticationmanager 124 in response to user input. The authentication manager 124proceeds to box 521. If the authentication manager 124 determines in box518 that the account does exist, the authentication manager 124 alsoproceeds to box 521.

Next, in box 521, the authentication manager 124 determines whether anauthentication endpoint 139 (FIG. 1) has been defined for the networkpage 145 or network site 140. This may involve examining, if they exist,configuration files 148, 157 (FIG. 1). If an authentication endpoint 139has not been defined, the authentication manager 124 moves to box 524and provides the account parameters, including security credentials, byform filling. The authentication manager 124 may send the accountparameters to the network site 140 or may merely allow the user tosubmit the form. The control flow of the authentication manager 124 thenstops.

If in box 521 the authentication manager 124 determines that anauthentication endpoint 139 has been defined, the authentication manager124 proceeds to box 527 and provides the account parameters by way ofthe authentication endpoint 139. The authentication manager 124 may sendthe account parameters to the network site 140 or wait for user inputfor approval. The control flow of the authentication manager 124 thenstops.

Referring next to FIG. 6, shown is a flowchart that provides one exampleof the operation of a portion of the security credential manager 163according to various embodiments. It is understood that the flowchart ofFIG. 6 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof the portion of the security credential manager 163 as describedherein. As an alternative, the flowchart of FIG. 6 may be viewed asdepicting an example of steps of a method implemented in the computingdevice 112 (FIG. 1) according to one or more embodiments.

Beginning with box 603, the security credential manager 163 obtains anauthentication request from a client 103 (FIG. 1). The request isassociated with a user account. The authentication request may specify amaster security credential in some cases. In box 606, the securitycredential manager 163 determines whether the authentication requestincludes a valid master credential. To this end, if a master securitycredential is specified, the security credential manager 163 maygenerate a hashed version of the master security credential and comparethe hashed version with the valid master credential 169 (FIG. 1) for theuser account. In various embodiments, the master security credential mayemploy public-key cryptography, one-time passwords sent throughalternate communication channels (e.g., a one-time password sent to thecell phone of the user), a quick response (QR) code captured by a cellphone, etc. If the request does not include a valid master credential,the security credential manager 163 moves to box 609. If the requestdoes include a valid master credential, the client 103 is authenticatedand the security credential manager 163 moves to box 612.

In box 609, when the client 103 cannot be authenticated via a mastersecurity credential, the security credential manager 163 generates oneor more knowledge-based questions for the user. In some cases, thequestions may be dynamically generated based on user data 175 (FIG. 1)such as recent purchase transaction data. In other cases, the questionsmay be retrieved from the static knowledge-based questions 172 chosenand answered by the user or generated from static information gatheredduring initial account creation. The knowledge-based questions areprovided to the client 103 for rendering in a user interface. In oneexample, the knowledge-based questions are included in one or morenetwork pages.

In box 615, the security credential manager 163 obtains answers to theknowledge-based questions from the client 103 over the network 115 (FIG.1). In box 616, the security credential manager 163 may obtain one ormore supplemental security credentials from the client 106. Suchsupplemental security credentials may include shared secret passwords, aQR code, a one-time password, a Rivest Shamir Adleman (RSA) token,cookie data, Flash cookie data, internet protocol (IP) addresses, and/orother forms of supplemental security credentials. In box 618, thesecurity credential manager 163 generates a score based on the answersprovided by the user at the client 103 and the correct answers to thequestions. Where supplemental security credentials are employed, thescore may be generated based at least in part on valid supplementalcredentials 170 (FIG. 1) that are provided by the user. Differentquestions and/or supplemental security credentials may be weighteddifferently in computing the score. For example, questions based onevents may be weighted according to the recency of the event. As anotherexample, a valid supplemental RSA token may be weighted more heavilythan a valid IP address.

In box 621, the security credential manager 163 determines whether thescore meets a minimum predefined threshold for authentication viaknowledge-based questions and/or supplemental security credentials. Ifthe score does not meet the minimum predefined threshold, the securitycredential manager 163 moves to box 624 and denies the user at theclient 103 access to stored security credentials in the server accountdata 166 (FIG. 1). Thereafter, the portion of the security credentialmanager 163 ends. Otherwise, if the score does meet the minimumpredefined threshold, the security credential manager 163 proceeds tobox 612.

In box 612, the security credential manager 163 provides the securitycredentials to the client 103 over the network 115. The securitycredentials may be provided over an encrypted channel such as, forexample, SSL, TLS, and so on. The authentication manager 124 (FIG. 1)executed in the client 103 may subsequently use the security credentialsto authenticate with one or more network sites 140 (FIG. 1).

In box 627, the security credential manager 163 determines whether thevalid master credential 169 is to be reset by the user. If the validmaster credential is to be reset, the security credential manager 163moves to box 630 and obtains a new master security credential from theclient 103. The new master security credential may then be establishedby the security credential manager 163 as the valid master credential169. In another embodiment, the security credential manager 163 mayobtain the previous master security credential from the user in order tochange the master security credential instead of resetting it.Thereafter, the portion of the security credential manager 163 ends. Ifthe security credential manager 163 determines in box 627 that themaster security credential is not to be reset, the portion of thesecurity credential manager 163 also ends.

Moving on to FIG. 7, shown is a flowchart that provides one example ofthe operation of another portion of the security credential manager 163according to various embodiments. It is understood that the flowchart ofFIG. 7 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof the other portion of the security credential manager 163 as describedherein. As an alternative, the flowchart of FIG. 7 may be viewed asdepicting an example of steps of a method implemented in the computingdevice 112 (FIG. 1) according to one or more embodiments.

Beginning with box 703, the security credential manager 163 obtains anaccount creation request from a client 103 specifying that a useraccount is to be created for a network site 140 (FIG. 1). In variousembodiments, it may be assumed that the client 103 is alreadyauthenticated according to the procedure of FIG. 6 or is in the processof establishing an account with the security credential manager 163. Inbox 706, the security credential manager 163 may obtain a configurationfile 148 (FIG. 1) for the network site 140 (FIG. 1) from the networkpage server 136 (FIG. 1). The configuration file 148 may be stored as aconfiguration file 176 (FIG. 1). Alternatively, the configuration file176 may be obtained from the configuration files 157 (FIG. 1) of acomputing device 109 (FIG. 1).

In box 709, the security credential manager 163 creates a user accountwith the network site 140 using an account creation endpoint 138 (FIG.1). In other embodiments, the security credential manager 163 may createthe account using form filling. In still other embodiments, the accountmay be created in advance by the user, and the client 103 may supply thepreexisting security credentials to access the account.

In box 712, the security credential manager 163 generates one or moresecurity credentials for the account having the maximum securitystrength as defined by a security credential specification of theconfiguration file 176. For example, if 128 characters are permitted asa password length, and password characters may be selected from theentire Universal Character Set (UCS) Transformation Format-8 bit (UTF-8)character set, the security credential manager 163 may generate a128-character password with characters randomly selected from the entireUTF-8 character set. In some cases, the security credentials maycorrespond to shared secrets. In other cases, the security credentialsmay be asymmetric, e.g., a public/private key pair or other form ofpublic-key cryptography.

In box 715, the security credential manager 163 establishes thegenerated security credential with the network site 140 using theaccount creation endpoint 138. Alternatively, the security credentialmanager 163 may use form filling to establish the security credential.Additionally, the security credential manager 163 may change an existingsecurity credential through the account creation endpoint to be thegenerated security credential. In such cases, the security credentialmanager 163 may supply the previous or existing security credential(s)to the account creation endpoint 138.

In box 718, the security credential manager 163 stores the securitycredential in association with the user account in the account data 160(FIG. 1). The security credential may or may not be stored in anencrypted format. Thereafter, the portion of the security credentialmanager 163 ends.

With reference to FIG. 8, shown is a schematic block diagram of thecomputing device 112 according to an embodiment of the presentdisclosure. Although the computing device 112 is discussed, it isunderstood that the computing devices 106, 109 and the client 103 may besimilar. The computing device 112 includes at least one processorcircuit, for example, having a processor 803 and a memory 806, both ofwhich are coupled to a local interface 809. To this end, the computingdevice 112 may comprise, for example, at least one server computer orlike device. The local interface 809 may comprise, for example, a databus with an accompanying address/control bus or other bus structure ascan be appreciated.

Stored in the memory 806 are both data and several components that areexecutable by the processor 803. In particular, stored in the memory 806and executable by the processor 803 are the security credential manager163 and potentially other applications. Also stored in the memory 806may be a data store 160 and other data. In addition, an operating systemmay be stored in the memory 806 and executable by the processor 803.

It is understood that there may be other applications that are stored inthe memory 806 and are executable by the processor 803 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java®,JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Delphi®, Flash®,or other programming languages.

A number of software components are stored in the memory 806 and areexecutable by the processor 803. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 803. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 806 andrun by the processor 803, source code that may be expressed in properformat such as object code that is capable of being loaded into a randomaccess portion of the memory 806 and executed by the processor 803, orsource code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 806 to beexecuted by the processor 803, etc. An executable program may be storedin any portion or component of the memory 806 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 806 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 806 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 803 may represent multiple processors 803 and thememory 806 may represent multiple memories 806 that operate in parallelprocessing circuits, respectively. In such a case, the local interface809 may be an appropriate network that facilitates communication betweenany two of the multiple processors 803, between any processor 803 andany of the memories 806, or between any two of the memories 806, etc.The local interface 809 may comprise additional systems designed tocoordinate this communication, including, for example, performing loadbalancing. The processor 803 may be of electrical or of some otheravailable construction.

Although the security credential manager 163, the authentication manager124 (FIG. 1), the network page server 136 (FIG. 1), and other varioussystems described herein may be embodied in software or code executed bygeneral purpose hardware as discussed above, as an alternative the samemay also be embodied in dedicated hardware or a combination ofsoftware/general purpose hardware and dedicated hardware. If embodied indedicated hardware, each can be implemented as a circuit or statemachine that employs any one of or a combination of a number oftechnologies. These technologies may include, but are not limited to,discrete logic circuits having logic gates for implementing variouslogic functions upon an application of one or more data signals,application specific integrated circuits having appropriate logic gates,or other components, etc. Such technologies are generally well known bythose skilled in the art and, consequently, are not described in detailherein.

The flowcharts of FIGS. 5-7 show the functionality and operation of animplementation of portions of the authentication manager 124 and thesecurity credential manager 163. If embodied in software, each block mayrepresent a module, segment, or portion of code that comprises programinstructions to implement the specified logical function(s). The programinstructions may be embodied in the form of source code that compriseshuman-readable statements written in a programming language or machinecode that comprises numerical instructions recognizable by a suitableexecution system such as a processor 803 in a computer system or othersystem. The machine code may be converted from the source code, etc. Ifembodied in hardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowcharts of FIGS. 5-7 show a specific order of execution,it is understood that the order of execution may differ from that whichis depicted. For example, the order of execution of two or more blocksmay be scrambled relative to the order shown. Also, two or more blocksshown in succession in FIGS. 5-7 may be executed concurrently or withpartial concurrence. Further, in some embodiments, one or more of theblocks shown in FIGS. 5-7 may be skipped or omitted. In addition, anynumber of counters, state variables, warning semaphores, or messagesmight be added to the logical flow described herein, for purposes ofenhanced utility, accounting, performance measurement, or providingtroubleshooting aids, etc. It is understood that all such variations arewithin the scope of the present disclosure.

Also, any logic or application described herein, including the securitycredential manager 163, the authentication manager 124, and the networkpage server 136, that comprises software or code can be embodied in anynon-transitory computer-readable medium for use by or in connection withan instruction execution system such as, for example, a processor 803 ina computer system or other system. In this sense, the logic maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem. The computer-readable medium can comprise any one of manyphysical media such as, for example, magnetic, optical, or semiconductormedia. More specific examples of a suitable computer-readable mediumwould include, but are not limited to, magnetic tapes, magnetic floppydiskettes, magnetic hard drives, memory cards, solid-state drives, USBflash drives, or optical discs. Also, the computer-readable medium maybe a random access memory (RAM) including, for example, static randomaccess memory (SRAM) and dynamic random access memory (DRAM), ormagnetic random access memory (MRAM). In addition, the computer-readablemedium may be a read-only memory (ROM), a programmable read-only memory(PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or othertype of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. A system, comprising: acomputing device; and a first application executing on the at least onecomputing device, wherein, when executed, the first application causesthe computing device to at least: transmit a plurality of existingsecurity credentials associated with a plurality of network sites to aremote computing device, the plurality of existing security credentialsbeing associated with a particular user account, and the plurality ofexisting security credentials being managed and stored on the remotecomputing device via a second application; obtain network contentassociated with a particular network site in response to a request froma user; transmit a master security credential and at least one answer toat least one question to the remote computing device to authenticate aconnection with the second application being executed on the remotecomputing device; receive a particular security credential from theremote computing device in response to authenticating the connection;and automatically establish access to the network content according tothe particular security credential.
 2. The system of claim 1, whereinthe connection is authenticated in response to a determination that themaster security credential is valid and a score associated with the atleast one answer meeting or exceeding a predefined threshold.
 3. Thesystem of claim 2, wherein the score is based at least in part onassigning individual answers of the at least one answer a respectivedifferent weight based at least in part on the at least one question. 4.The system of claim 1, wherein, when executed, the first applicationfurther causes the computing device to at least determine that access tothe network content requires authentication based at least in part on atleast one of: a configuration file, a user input, or an authenticationform.
 5. The system of claim 1, wherein, when executed, the firstapplication further causes the computing device to at least identify anauthentication point defined for the particular network site, whereinautomatically establishing access to the network content occurs at theauthentication point.
 6. The system of claim 1, wherein, when executed,the first application further causes the computing device to at least:determine that the network site is unverified; generate a notificationincluding a warning to present to the user that the network site isunverified; and render the notification via a display.
 7. The system ofclaim 1, wherein the first application comprises a browser plugin.
 8. Amethod, comprising: obtaining, via a first computing device, networkcontent associated with a network site in response to a user request;determining, via the first computing device, that the network siterequires authentication; authenticating, via the first computing device,a connection with an application executing on a second computing devicewith respect to a user account based at least in part on a mastersecurity credential associated with the user account and anauthentication score, the application being configured to store andmanage a plurality of security credentials associated with the useraccount; and automatically establishing access to a network siteaccording to a particular security credential received from the secondcomputing device in response to authenticating the connection.
 9. Themethod of claim 8, further comprising: causing to render, via the firstcomputing device, a plurality of questions received from the secondcomputing device; and transmitting, via the first computing device, aplurality of answers corresponding to the plurality of questions to thesecond computing device, the plurality of answers being provided by auser.
 10. The method of claim 9, wherein the authentication score isbased at least in part on the plurality of answers and individualanswers of the plurality of answers being assigned a respectivedifferent weight.
 11. The method of claim 10, wherein the connection isauthenticated in response to the master security credential being validand the authentication score meeting or exceeding a predefinedthreshold.
 12. The method of claim 8, further comprising: determining,via the first computing device, that the particular security credentialto the access the network site fails to exist for the user account;sending, via the first computing device, a request to the secondcomputing device to generate the particular security credential for theuser account; and receiving, via the first computing device, theparticular security credential from the second computing device.
 13. Themethod of claim 12, wherein the request comprises a security credentialspecification received from the network site, the particular securitycredential being generated by the application according to the securitycredential specification.
 14. The method of claim 8, wherein determiningthat the network site requires authentication is based at least in parton at least one of: a configuration file, a user input, or anauthentication form.
 15. The method of claim 8, further comprising:receiving, via the first computing device, a plurality of securitycredentials associated with the user account; and selecting, via thefirst computing device, the particular security credential of theplurality of security credentials, the particular security credentialbeing associated with the network site.
 16. A non-transitorycomputer-readable medium embodying a program executable in a firstcomputing device, wherein, when executed, the program causes the firstcomputing device to at least: receive a request for network contentassociated with a network site in response to a user request; obtain thenetwork content from the network site; authenticate a connection to aremote application executing on a second computing device based at leastin part on a master security credential associated with a user accountand at least one answer to at least one question received from thesecond computing device and provided by a user; receive a particularsecurity credential from the second computing device in response toauthenticating the connection, the particular security credentialcorresponding to the network site and being unique to the user account;and authenticate access to the network site for the user account usingthe particular security credential.
 17. The non-transitorycomputer-readable medium of claim 16, wherein the connection isauthenticated in response to a determination that the master securitycredential is valid and a score associated with at least one answermeeting or exceeding a predefined threshold.
 18. The non-transitorycomputer-readable medium of claim 17, wherein the score is based atleast in part on assigning individual answers a respective differentweight.
 19. The non-transitory computer-readable medium of claim 16,wherein, when executed, the program causes the first computing device toat least verify the network site based at least in part on anexamination of a domain name and a trusted certificate associated withthe network content.
 20. The non-transitory computer-readable medium ofclaim 16, wherein the first computing device is a client device and thesecond computing device is a remote computing device.